package de.tum.in.eist.poll.server.dao;

import java.util.List;

import de.tum.in.eist.poll.shared.beans.Feedback;

/**
 * The FeedbackDaoInterface describes a persistence layer
 * used to {@link add} and {@link get} Feedback objects from
 * a store.
 * 
 * @author The EIST-POLL-21 team.
 *
 */
public interface FeedbackDaoInterface {
	/**
	 * Add a Feedback object to the store.
	 * 
	 * @param feedback  The {@link Feedback} to store
	 */
	public void add(Feedback feedback);
	
	/**
	 * Get a Feedback object from the store given a Lecture's ID
	 * and a Student's ID.
	 * 
	 * @param lectureID The {@link Lecture}'s identification code
	 * @param studentID The {@link Student}'s identification code
	 * @return The {@link Feedback} object
	 */
	public Feedback      get(String lectureID, String studentID);
	
	/**
	 * Get a list of {@link Feedback}s a given by a {@link Student}.
	 * 
	 * @param studentID the student's ID
	 * @return a list of feedbacks
	 */
	public List<Feedback> getByStudent(String studentID);
	
	/**
	 * Get a list of {@link Feedback}s which were submitted for a {@link Lecture}.
	 *  
	 * @param lectureID the lecture's ID
	 * @return a list of feedbacks
	 */
	public List<Feedback> getByLecture(String lectureID);
}
